#ifndef _TRANSIENT_ADDON_H_
#define _TRANSIENT_ADDON_H_

#include <string>
#include "math/vec2.h"

// Add-on class for frameworks to use transient decal system
//
// 1) Class inherits TransientAddon class
// 2) Update class' Tick function
// 3) Update class' Render function
//

namespace backdrop
{

class TransientBackdrop;
class TransientDecal;

class TransientAddon
{
public:
	TransientAddon(bool AutoCreate = true);
	virtual ~TransientAddon();

	TransientDecal*				AddTransientDecal(const std::string& name, const math::Vec2& pos, const math::Vec2& dir, int layer = 0);
	TransientDecal*				GetTransientDecal(const math::Vec2& pos);
	void						DropTransientDecal(TransientDecal* pDecal, bool bDelete = true);

protected:
	TransientBackdrop*			m_pTransient;
};

}  // namespace backdrop

#endif // _TRANSIENT_ADDON_H_
